package com.magicalcoder.youyamvc.app.student.dao;

import com.magicalcoder.youyamvc.app.model.defined.IntegerDate;
import com.magicalcoder.youyamvc.app.model.defined.IntegerObject;
import com.magicalcoder.youyamvc.app.model.Student;
import com.magicalcoder.youyamvc.app.model.defined.StudentWithClasses;
import com.magicalcoder.youyamvc.app.model.defined.StudentWithAdminUser;
import java.util.List;
import java.util.Map;

/**
* 代码为自动生成 Created by www.magicalcoder.com
* 如果你改变了此类 read 请将此行删除
* 欢迎加入官方QQ群:323237052
*/

public interface StudentDao{
    Student getStudent(Map<String, Object> query);
    List<Student> getStudentList(Map<String, Object> query);
    Integer getStudentListCount(Map<String, Object> query);
    Integer  insertStudent(Student entity);
    Integer  replaceStudent(Student entity);
    void batchInsertStudent(List<Student> list);
    void batchReplaceStudent(List<Student> list);
    void batchUpdateStudent(List<Student> list);
    void updateStudent(Student entity);
    void updateStudentWithoutNull(Student entity);
    void updateStudentByWhereSql(Map<String,Object> entity);

    List<StudentWithClasses> getStudentWithClassesByClassIdList(Map<String, Object> query);

    List<StudentWithAdminUser> getStudentWithAdminUserByAdminUserIdList(Map<String, Object> query);

    void truncateStudent();
    void deleteStudent(Map<String, Object> query);
    void deleteStudentList(Map<String, Object> query);
    void deleteStudentByWhereSql(Map<String, Object> query);
    void batchDeleteStudent(List<Integer> list);
    void batchDeleteStudentList(List<Student> entityList);
    List<IntegerDate> statisticsDateCountList(Map<String,Object> query);
    List<IntegerDate> statisticsDateIntervalList(Map<String,Object> query);
    List<IntegerObject> statisticsGroupList(Map<String,Object> query);
}
